//import java.util.*;
//
//
//class ListNode {
//   int val;
//   ListNode next = null;
//   public ListNode(int val) {
//     this.val = val;
//   }
//}
//
//
//public class Solution {
//    /**
//     * 代码中的类名、方法名、参数名已经指定，请勿修改，直接返回方法规定的值即可
//     *
//     *
//     * @param a ListNode类
//     * @param b ListNode类
//     * @return ListNode类
//     */
//    public static ListNode mergeList (ListNode a, ListNode b) {
//        // write code here
//        if(a == null || b == null){
//            return null;
//        }
//        ListNode dum = new ListNode(0);
//        ListNode cur = dum;
//        //头
//        while (a != null && b != null && a.val == b.val){
//            cur.next = a;
//            cur = cur.next;
//            a = a.next;
//            b = b.next;
//        }
//        //尾部
//        //剩余的短的为准
//        int countA = 0;
//        ListNode tmpa = a;
//        while (tmpa != null){
//            countA++;
//            tmpa = tmpa.next;
//        }
//        int countB = 0;
//        ListNode tmpb = b;
//        while (tmpb != null){
//            countB++;
//            tmpb = tmpb.next;
//        }
//        if(countA > countB) {
//            //a往后走
//            while (countA != countB) {
//                countA--;
//                a = a.next;
//            }
//        }else {
//            //b往后走
//            while (countA != countB){
//                countB--;
//                b = b.next;
//            }
//        }
//        //先去掉不等的
//        while (a != null && b != null && a.val != b.val){
//            a = a.next;
//            b = b.next;
//        }
//        //相等了
//        while (a != null && b != null && a.val == b.val){
//            cur.next = a;
//            cur = cur.next;
//            a = a.next;
//            b = b.next;
//        }
//        cur.next = null;
//        return dum.next;
//    }
//
//    public static void main(String[] args) {
//        ListNode a = new ListNode(1);
//        a.next = new ListNode(2);
//        a.next.next = new ListNode(2);
//        a.next.next.next = new ListNode(3);
//        a.next.next.next.next = new ListNode(4);
//        ListNode b = new ListNode(1);
//        b.next = new ListNode(2);
////        b.next.next = new ListNode(1);
////        b.next.next.next = new ListNode(3);
////        b.next.next.next.next = new ListNode(3);
////        b.next.next.next.next.next  = new ListNode(4);
//        mergeList(a,b);
//    }
//}